let express=require("express")
let {arr_user}=require("./indexSer")
let app=express()


//中间件
//在处理服务器请求时,需要进行很多细节的处理,比如请求体报文报头以及coolie等等
//前后端交互最重要的就是request和respond两个参数,其次是next,因为每一个中间件执行完毕应该进入下一个中间件,因此调用next()
//常见的应用级别的中间件就是app.use() 或者是app.post()  或者是app.get()
app.use((req,res,next)=>{
    //允许跨域
    res.setHeader("Access-Control-Allow-Origin","*")
    //将添加的数据传给后端需要添加请求头,让后端同意接收
    res.setHeader("Access-Control-Allow-Headers","*")
    next()
    //调用next()方法表示通行放行
})


app.listen(8080,(req,res)=>{
    console.log("服务器已启动,端口号是8080");
})
//查询内容
app.get("/userInfor",(req,res)=>{
   // res.setHeader("Access-Control-Allow-Origin","*")
    res.send(arr_user)
})

//分页查询
app.get("/pages",(req,res)=>{
   // res.setHeader("Access-Control-Allow-Origin","*")
    //获取url中的参数
   console.log(req.query);
   //获取当前页数和每页的数量
   let pageIndex=parseInt(req.query.pageIndex)
   let pageNumber=parseInt(req.query.pageNumber)
   //分页查询获取结果
   let page=arr_user.slice((pageIndex-1)*pageNumber,pageIndex*pageNumber)
   //获取总数
   let count=arr_user.length;
   res.send(
    { page,count}
   
   )

})

//设置允许接收json格式的文件
app.use(express.json())
//设置允许接收url格式的文件
app.use(express.urlencoded({extended:false}))
//添加
app.post("/add",(req,res)=>{
    //res.setHeader("Access-Control-Allow-Origin","*")
    //req.body存储在post请求中的参数
   // console.log(req.body);
    let new_arr=req.body
    arr_user.push(new_arr)

    res.send(true)
})


        //获取内容   根据id账号找到对应的内容,判断账号是否存在
        app.get('/getInforOne',(req,res)=>{
            //获取id账号
            let {id}=req.query
            //根据id账号返回人员信息
            let infor_id=arr_user.find(item=>item.id==id)
            res.send(infor_id)

        })
        //修改
        app.post("/amendInfor",(req,res)=>{
            //获取全部内容
            let infor=req.body
            //根据id找出对象的信息下标的位置
            let index_inf=arr_user.findIndex(i=>i.id==infor.id)
            arr_user[index_inf]=infor
            res.send(true)
        })

        //删除
        app.post("/delete",(req,res)=>{
            //获取全部内容
            let infor=req.body
            let index=arr_user.findIndex(i=>i.id==infor.id)
            arr_user.splice(index,1)
            res.send(true)
        })

